Next主题优化 个性化打造
Hexo使用next主题的各种优化(必看)Hexo使用next主题的各种优化(必看)
Hexo 是高效的静态站点生成框架,她基于 Node.js。 通过 Hexo 你可以轻松地使用
Markdown
编写文章。在这篇文章中,假定你已经成功安装了 Hexo,并使用 Hexo 提供的命令创建了一个站点。>这里说明白了就是hexo的这个框架啊,基于Node.js,hexo用来生成html(从markdown到html的旅程
),比较高效。
>而github pages支持静态页面的解析,完全可以自己写 html push 到 gitpages
>更多的参考 hexo是怎么工作的http://coderunthings.com/2017/08/20/howhexoworks/
( 关于如何初步使用Hexo以及Github来搭建博客请参考我博客中的其他文章或者网上自行搜索) )
而
NexT
是hexo中经常使用到的一个主题,可能是因为它漂亮hhh其实是因为这个主题封装的插件比较好和全,大部分只要往里头写就行了。其他的主题可以在github上搜索,前三名是Next,Casper,uno~有哪些好看的 Hexo 主题?网上能搜索出很多的教程,我就不一一记录了,Next主题优点scheme(主题)、Plug-in(插件)都有。
其实我们搭建自己个人的blog,更直观的就是一个主题的使用感受。网上还有很多把自己的搭建的
站点配置文件
和主题配置文件
源码分享的。注意
站点配置文件
和主题配置文件
在 Hexo 中有两份主要的配置文件,其名称都是
_config.yml
。 其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。拿我自己来举例子,
站点配置文件
的路径是/shirlynn/blog/_config.yml
,主题配置文件
的路径是/shirlynn/blog/themes/next/_config.yml
shirlynn/blog
是我的站点根目录,当初下载hexo时必须安装在用户目录下。 不同的主题配置文件不同,比如landscape主题的主题配置文件
的路径是/shirlynn/blog/themes/landscape/_config.yml
不建议大家直接复制他人的源码,还是按照自己的想法来配置比较好。开始做之前先多看看,一旦开始动手的话也就是一天的时间就能得到自己的个性化的博客!
第一步 官方手册
我当初是按照官方手册Next官方手册来的,都比较简单明了。
一些比较基本的,比如字体等,都已经包含在其中。
当然不必要每一步都和官方一样,但是为了之后自己的定制个人化打下基础,再后来的配置中知道自己正在做什么就行了。
第二步 next主题的各种优化(必看)
可以在侧边栏快速找到你想要的个性化设置- 修改文章字体的大小
- 博客首页文章摘要显示图片
- 增加站内搜索
- 增加底部版权声明
- 添加字数统计与阅读时长
- 添加来必力评论系统
- 修改头像实现旋转
- 添加访问量
- 添加进度条
- 侧边栏社交小图标设置
- 添加Rss
- 修改文章内链接文本样式
- 修改文章底部的那个带#号的标签
- 在每篇文章末尾统一添加“本文结束”标记
- 添加底部分享
- 修改代码块自定义样式
- 添加友情链接
- 博客添加背景动态效果和心心
- hexo文章目录显示的bug
- 更换Scheme
- 优化加载速度
- 博文置顶
- 博客置顶功能
1. 修改文章字体的大小
打开Next主题的配置文件_config.yml,将global属性的size设置为16。更为详细的设置可以参考:Next官方手册
1 | # Global font settings used on <body> element. |
2. 博客首页文章摘要显示图片
给文章的Front-matter添加photos字段。例如:
1 | title: |
添加了photos字段后,在博客首页就会显示对应的图片。每个标签的含义可以参考:Hexo官方文档
3. 增加站内搜索
Hexo提供的Local Search,原理是通过hexo-generator-search插件
在本地生成一个search.xml
文件,搜索的时候,从这个文件中根据关键字检索出相应的链接。
安装hexo-generator-search插件
1 | $ npm install hexo-generator-search --save |
启动搜索:编辑站点配置文件
~/blog/_config.yml,增加以下内容到任意位置:
1 | # Add search function |
4. 增加底部版权声明
在主题目录next/layout/_macro/
下添加文件my-copyright.swig
1 | {% if page.copyright %} |
在目录next/source/css/_common/components/post/
下添加文件my-post-copyright.styl
:
1 | .my_post_copyright { |
修改next/layout/_macro/post.swig
,在代码
1 | {% if theme.wechat_subscriber.enabled and not is_index %} |
之前添加代码
1 | <div> |
修改next/source/css/_common/components/post/post.styl
文件,在最后一行增加代码:
1 | @import "my-post-copyright" |
然后保存。
如果需要为文章添加版权信息,只需要在当前博客或者模板文件的Front-matter中添加字段:copyright: true
1 | --- |
5. 添加字数统计与阅读时长
NexT主题默认已经集成了字数统计的功能,只需要在主题的配置文件中打开此功能即可。
1 | # Post wordcount display settings |
修改完成之后,重新启动服务,进行预览
1 | hexo s --drafts |
访问http://localhost:4000/
链接,如果出现字数统计和阅读时长失效的情况,一般是因为没有安装 hexo-wordcount
插件,查看 Hexo 插件:
1 | hexo --debug |
安装字数统计的插件
如果没有安装 hexo-wordcount 插件,先安装该插件:
1 | npm i --save hexo-wordcount |
Node 版本 7.6.0 之前,请安装 2.x 版本 (Node.js v7.6.0 and previous) ,安装命令如下:
1 | npm install hexo-wordcount@2 --save |
安装完成后,重新执行启动服务预览就可以了。
6. 添加来必力评论系统
首先要注册来必力帐号,并获取用户的UID(具体可以看上方的参考博客)。
然后打开主题目录的配置文件/next/_config.yml
,定位到livere_uid
字段,将UID填入即可
1 | # Support for LiveRe comments system. |
至此,其他人就可以使用评论系统进行评论。
- 修改头像实现旋转
更换头像,打开站点配置文件,找到avatar字段
,可以使用网络路径,也可以将头像存放在source/images/
中。如果头像是椭圆的,是因为图片不是一个正方形的图片,找到一个宽高像素一样的的图片即可。
1 | avatar: /images/head.jpg |
打开\themes\next\source\css\_common\components\sidebar\sidebar-author.styl
,在里面添加如下代码:
1 | .site-author-image { |
8. 添加访问量
打开\themes\next\layout\_partials\footer.swig
文件,搜索<div class="copyright">
,在这个div标签前边加上如下代码
1 | <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> |
然后再在合适的位置添加如下代码,自己是放在footer.swig文件的末尾,具体显示的位置见博主的博客。
1 | <div class="powered-by"> |
注意:统计访问量有两种不同的方式(自己使用的是uv的方式)
pv的方式,也就是单个用户连续点击n篇文章,记录n次访问量
1 | <span id="busuanzi_container_site_pv"> |
uv的方式,单个用户点击n篇文章,只记录1次访问量
1 | <span id="busuanzi_container_site_uv"> |
添加之后再执行hexo d -g
,然后再刷新页面就能看到效果
==2019.3.31 修复不蒜子域名失效==
==新方法==
使用不蒜子添加总访问量
不蒜子官网:http://busuanzi.ibruce.info/
使用功能就更加简单,找到 next 主题的页脚文件 foot.swg
:
1 | vim themes/next/layout/_partials/footer.swig |
添加如下代码即可:
1 | <span id="busuanzi_container_site_pv" class="theme-info"> |
9. 添加进度条
首先需要查看当前NexT的版本号?
如何查看当前NexT主题的版本号呢,打开主题配置文件_config.yml
,最下方就显示了当前的版本号。
版本5.1.3只需要在主题配置文件中找到pace属性,将其修改为true就可以了。
1 | # Progress bar in the top during page loading. |
10. 侧边栏社交小图标设置
打开主题配置文件
,搜索social_icons
,在图标库fontawesome找自己喜欢的小图标,并将名字复制到social_icons属性下,保存即可
1 | social: |
11. 添加Rss
使用cd进入博客的根目录
,执行下方命令安装插件hexo-generate-feed
1 | $ npm install --save hexo-generator-feed |
找到博客的配置文件_config.yml
,然后在文件末尾添加
1 | # Extensions |
然后找到主题的配置文件_config.yml
,在rss:的后面加上/atom.xml,注意在冒号后面要加一个空格)
1 | # Set rss to false to disable feed link. |
在博客根目录执行命令hexo g
12. 修改文章内链接文本样式
见本博客文章中的效果:当点击蓝色链接时,颜色变为黄色
修改文件 themes\next\source\css_common\components\post\post.styl,在末尾添加如下css样式
1 | // 文章内链接文本样式 |
13. 修改文章底部的那个带#号的标签
默认的标签文字前边是个#,可以将其修改
修改模板/themes/next/layout/_macro/post.swig
,搜索rel=”tag”>#
,将 # 换成
1 | <div class="post-tags"> |
14. 在每篇文章末尾统一添加“本文结束”标记
在路径\themes\next\layout\_macro
中新建passage-end-tag.swig
文件,并添加以下内容
1 | <div> |
接着打开\themes\next\layout\_macro\post.swig
文件,在post-body之后, post-footer 之前添加代码
1 | <div> |
然后打开主题配置文件_config.yml
,在末尾添加
1 | # 文章末尾添加“本文结束”标记 |
15. 添加底部分享
在主题的配置文件中
,将jiathis
改为true
即可
1 | # Share |
16. 修改代码块自定义样式
打开\themes\next\source\css\_custom\custom.styl
,向里面加入如下css样式,即可实现
1 | code { |
17. 添加友情链接
在主题配置文件(blog\themes\next_config.yml)
中打开links 开关即可
1 | # Blog rolls |
注意:添加友情链接后 运行hexo g命令报错。
此时,只要将其中一个links_layout属性注掉就可以。
links_layout: inline 对应的水平布局,否则友情链接是竖直一列排列
18. 博客添加背景动态效果和心心
因为动态背景效果在手机上体验不太好,所以自己只加了小心心的效果。当鼠标左键点击的时候会出现不同颜色的小心心。
下载js文件love.js
1 | http://7u2ss1.com1.z0.glb.clouddn.com/love.js |
把 js 文件 love.js放在\themes\next\source\js\src
文件目录下
更新\themes\next\layout_layout.swig文件,在末尾(在前面引用会出现找不到的bug)添加以下js引入代码:
1 | <!-- 页面点击小红心 --> |
19. hexo文章目录显示的bug
参考博客:hexo-next为啥文章预览那里我的文章跳转只能点击前面的数字 #2035
将主题配置文件中的number
属性修改为false
即可取消自动编号。
1 | # Automatically add list number to toc. |
bug描述: hexo会自动为文章生成一个目录,并且会自动编号。
这个功能可以在主题配置文件中开启,但是编号以后只点击编号才能跳转到对应位置,点击文字却没有反应。
这是hexo 3.4.3的一个bug,只有点击文章目录的编号才能跳转。更新hexo到3.4.4即可解决此bug。
进入到博客的根目录中,执行命令:
1 | npm update hexo |
然后执行hexo version查看hexo的版本号,更新完成即可解决此bug。
20. 更换Scheme
NexT主题默认有四种主题外观,Scheme的切换可以通过更改 主题配置文件 。搜索 scheme 关键字,就会看到有四行 scheme 的配置,将需要启用的scheme前面的注释#去除即可。
注意事项
但是 scheme 前边一定不要留空格,:必须是英文的,而且后边必须留空格。
错误的配置(:后没有空格)
错误配置(scheme前边留了空格)
如果scheme前边留了空格,执行hexo g命令,或者启动博客服务时,会报出如下错误
1 | Unhandled rejection Error: ENOENT: no such file or directory, open 'C:\github\blog\themes\next\layout\_scripts\schemes\.swig' |
21. 优化加载速度
为了提高网站的加载速度,使用gulp对博文中的js、css、img等文件进行压缩。
在博客的根目录执行以下命令
1 | $ npm install gulp -g |
然后在根目录中新建文件gulpfile.js
,并填入以下内容
1 | var gulp = require('gulp'); |
生成博文是执行hexo g && gulp
就会根据gulpfile.js
中的配置,对public目录中的静态资源文件进行压缩。
22. 博文置顶
打开博客的根目录,将文件node_modules/hexo-generator-index/lib/generator.js
中的代码替换为:
1 | 'use strict'; |
然后写文章的时候,添加 top字段
即可,数值越大文章越靠前。例如
1 | title: |
注意:必须重启本地服务才会生效。
23. 博客置顶功能
参考博客新增Hexo博客文章置顶功能
修改node_modules/hexo-generator-index/lib/generator.js
的源码, 添加如下代码
1 | posts.data = posts.data.sort(function(a, b) { |
修改后的代码如下
1 | module.exports = function(locals) { |